package com.zzy.system.domain;

import com.alibaba.fastjson2.annotation.JSONField;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;

import java.math.BigDecimal;

/**
 * 功能描述: 观麦商户
 *
 * @author zhouzhiyong
 * @date 2024/12/17 22:54
 */
@Data
public class GuanmaiCustomer {
    @TableId(type = IdType.AUTO)
    private int GuanmaiCustomerId;
    // 商户id，对应数据库中的customer_id字段，用于唯一标识每个商户
    @JSONField(name = "customer_id")
    private String customerId;

    // 详细地址，对应数据库中的customer_address字段，记录商户的具体地址信息
    @JSONField(name = "customer_address")
    private String customerAddress;

    // 商户名，对应数据库中的customer_name字段，方便直观展示商户的名称
    @JSONField(name = "customer_name")
    private String customerName;

    // 创建时间，对应数据库中的create_time字段，以字符串形式记录商户创建的时间
    @JSONField(name = "create_time")
    private String guanmaiCreateTime;

    // 东经，对应数据库中的lng字段，用于表示商户所在位置的经度信息
    @JSONField(name = "lng")
    private String lng;

    // 北纬，对应数据库中的lat字段，用于表示商户所在位置的纬度信息
    @JSONField(name = "lat")
    private String lat;

    // 省级地理标签编号，对应数据库中的district_code字段，用于标识省级层面的地理区域划分
    @JSONField(name = "district_code")
    private String districtCode;

    // 省级地理标签名称，对应数据库中的district_name字段，方便直观知晓省级地理区域的名称
    @JSONField(name = "district_name")
    private String districtName;

    // 一级地理标签编号，对应数据库中的area_level1字段，用于更细化的一级地理区域划分的编号标识
    @JSONField(name = "area_level1")
    private int areaLevel1;

    // 一级地理标签名称，对应数据库中的area_level1_name字段，便于识别一级地理区域的具体名称
    @JSONField(name = "area_level1_name")
    private String areaLevel1Name;

    // 二级地理标签编号，对应数据库中的area_level2字段，进一步细化的二级地理区域划分的编号标识
    @JSONField(name = "area_level2")
    private int areaLevel2;

    // 二级地理标签名称，对应数据库中的area_level2_name字段，便于知晓二级地理区域的具体名称
    @JSONField(name = "area_level2_name")
    private String areaLevel2Name;

    // 收货人，对应数据库中的receiver_name字段，记录接收货物的人员姓名
    @JSONField(name = "receiver_name")
    private String receiverName;

    // 收货电话，对应数据库中的receiver_phone字段，用于联系收货人
    @JSONField(name = "receiver_phone")
    private String receiverPhone;

    // 账户id，对应数据库中的user_id字段，用于标识商户所属的账户，同一账户下可有多个商户
    @JSONField(name = "user_id")
    private String userId;

    // 账户余额，对应数据库中的balance字段，以字符串形式记录金额（单位元），同账户下商户余额相同
    @JSONField(name = "balance")
    private String balance;

    // 用户名，对应数据库中的username字段，方便识别账户对应的用户名称
    @JSONField(name = "username")
    private String username;

    // 结款人，对应数据库中的payer_name字段，记录负责结款的人员姓名
    @JSONField(name = "payer_name")
    private String payerName;

    // 结款人电话，对应数据库中的payer_telephone字段，用于联系结款人
    @JSONField(name = "payer_telephone")
    private String payerTelephone;

    // 审核状态，对应数据库中的check_out字段，用整数表示，0表示未审核，1表示已审核
    @JSONField(name = "check_out")
    private int checkOut;

    // 结款周期，对应数据库中的pay_method字段，1表示日结，2表示周结，3表示月结，4表示自定义
    @JSONField(name = "pay_method")
    private int payMethod;

    // 财务状态，对应数据库中的finance_status字段，0表示正常，1表示已冻结
    @JSONField(name = "finance_status")
    private int financeStatus;

    // 结算方式，对应数据库中的settle_way字段，1表示先货后款，2表示先款后货
    @JSONField(name = "settle_way")
    private int settleWay;

    // 账期方式，对应数据库中的is_credit字段，0表示按周期，1表示按额度
    @JSONField(name = "is_credit")
    private int isCredit;

    // 日期维度，对应数据库中的settle_date_type字段，1表示按下单日期，2表示按收货日期
    @JSONField(name = "settle_date_type")
    private int settleDateType;

    // 重点关注，对应数据库中的focus_on字段，0表示关闭，1表示打开
    @JSONField(name = "focus_on")
    private int focusOn;

    // 开户经理，对应数据库中的create_employee_name字段，记录商户开户时对应的经理姓名
    @JSONField(name = "create_employee_name")
    private String createEmployeeName;

    // 开户经理，对应数据库中的sales_employee_name字段，同样记录商户开户时对应的经理姓名（可能与上一个重复，依业务逻辑定）
    @JSONField(name = "sales_employee_name")
    private String salesEmployeeName;

    // 白名单，对应数据库中的whitelist字段，0表示非白名单用户，1表示白名单用户
    @JSONField(name = "whitelist")
    private int whitelist;


    // 商户自定义编码，对应数据库中的res_custom_code字段，用于商户自定义的编码标识
    @JSONField(name = "res_custom_code")
    private String resCustomCode;

    // 第三方来源商户编码，对应数据库中的in_id字段，关联来自第三方的商户编码信息
    @JSONField(name = "in_id")
    private String inId;

    // 店铺路线ID，对应数据库中的route_id字段，用于标识店铺对应的路线编号
    @JSONField(name = "route_id")
    private int routeId;

    //商户溯源平台id
    private String deptId;
    private String pkid;
}
